﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace SST_DA
{
    public class AsignacionDA
    {

        /// <summary>
        /// Esta funcion busca un informatico en la base de datos en base al circuito y una habilidad
        /// </summary>
        /// <param name="circuitoID">El ID del circuito</param>
        /// <param name="habilidadID">El ID de la habilidad</param>
        /// <returns>El informatico al que se le hara la asignacion</returns>
        public static int getInformaticoParaAsignar(int circuitoID, int habilidadID) {
            object[] parametros = { habilidadID, circuitoID };
            string[] NombreParametros = { "@habilidad", "@circuito" };
            const string query = "exec GetInformaticoParaAsignacion @circuito, @habilidad";
            DataTable result = BaseDatos.ExecuteQuery(query, NombreParametros, parametros);
            if (result == null || result.Rows.Count == 0 || result.Rows[0].ItemArray[0].ToString().Equals(""))
                return -1;
            return int.Parse(result.Rows[0].ItemArray[0].ToString());
        }//public static int getInformaticoParaAsignar(int circuitoID, int habilidadID) { 

        /// <summary>
        /// Agrega la asignacion
        /// </summary>
        /// <param name="Informatico">El ID de un informatico</param>
        /// <param name="Circuito">El ID de un circuito</param>
        /// <param name="Habilidad">El ID de una habilidad</param>
        /// <param name="RealizadaPor">El ID de la persona que realizo la asignacion</param>
        /// <returns></returns>
        public static bool AgregarAsignacion(int Informatico, int Circuito, int Habilidad, int RealizadaPor)
        {
            object[] parametros = { Informatico, Circuito, Habilidad, RealizadaPor };
            string[] NombreParametros = { "@informatico", "@circuito", "@habilidad", "@RealizadaPor" };
            const string query = "exec AgregarAsignacion @informatico,@habilidad, @circuito, @RealizadaPor";
            DataTable result = BaseDatos.ExecuteQuery(query, NombreParametros, parametros);
            if (result == null || result.Rows.Count == 0 || result.Rows[0].ItemArray[0].ToString().Equals(""))
                return false;
            return int.Parse(result.Rows[0].ItemArray[0].ToString()) > 0;
        }//public static bool AgregarHabilidad(string nombre) { 

        /// <summary>
        /// Busca las asignaciones globales es decir todas las asignaciones.
        /// </summary>
        /// <returns>Datatable con todas las asignaciones</returns>
        public static DataTable GetAsignaciones()
        {
            const string query = "exec GetAsignaciones";
            object[] parametros = {  };
            string[] nombreParametros = {  };
            return BaseDatos.ExecuteQuery(query, nombreParametros, parametros);
        }//public static DataTable GetUltimasAsignacionesDeInformatico(int Informatico) { 

        /// <summary>
        /// Retorna las ultimas asignaciones realizadas por un informatico en especial.
        /// </summary>
        /// <param name="informatico">El ID del informatico al cual se va a buscar las asignaciones.</param>
        /// <returns>Retorna las ultimas asignaciones realizadas por el informatico</returns>
        public static DataTable GetUltimasAsignaciones(int informatico) {
            const string query = "exec GetUltimasAsignaciones @informatico";
            object[] parametros = { informatico};
            string[] nombreParametros = { "@informatico"};
            return BaseDatos.ExecuteQuery(query, nombreParametros, parametros);            
        }//public static Asignacion[] GetUltimasAsignaciones(int Informatico) {

    }//class AsignacionDA
}//namespace SST_DA
